import { useUserStore } from '@/stores/user.js'

export default {
    install(app){
        // app 为根组件实例
        app.directive('permission',{
            mounted(el,binding) {
                hasPermission(binding.value,el)
            },
        })
    }
}

function hasPermission(value,el=false){
	//判断传入的数据是否符合自己设定的预期
	if(!Array.isArray(value)){
		//如果传入的不是数组则抛出错误
		throw new Error(`需要传入正确的数据类型`)
	}
	//判断是否拥有权限
    const userStore = useUserStore();
	let data = userStore.permissionCode  //存储着是否拥有该请求权限的数组
	//如果在data中包含了传入的数据字段，则代表拥有权限，没有则返回 -1  此时如果为false 则代表没有权限
	let hasAuth = value.findIndex(v=>data.includes(v))!=-1
	//当使用的自定义指令dom存在时，且没有权限
	if(el && !hasAuth){
		//移除组件
		el.parentNode.removeChild(el)
	}
}